<?php

/*
 * Escort BLL.
 * @Autor: Inicial.cl.
 */

class EscortBLL {

    //METODO PARA GRABAR
    public function grabar($oEscort) {
        $this->setearValoresVacios($oEscort);
        return EscortDAL::grabar($oEscort);
    }

    //METODO PARA EDITAR
    public function editar($oEscort) {
        $this->setearValoresVacios($oEscort);
        return EscortDAL::editar($oEscort);
    }

    //METODO PARA LISTAR
    public function listar($oEscort) {
        $arrEscort = EscortDAL::listar($oEscort);
        $arrRecurso = array();
        $idEscort = 0;
        foreach ($arrEscort as $value) {
            $idEscort = $value->getId();
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, "TODAS");
            $value->setRecurso($arrRecurso);
        }
        return $arrEscort;
    }

    //METODO PARA OBTENER POR ID
    public function obtenerPorId($id) {
        $oEscort = EscortDAL::obtenerPorId($id);
        $oRecurso_escortBLL = new Recurso_escortBLL();
        $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($oEscort->getId(), Tipo_recurso::IMAGEN, "-1");
        $oEscort->setRecurso($arrRecurso);
        return $oEscort;
    }

    //METODO PARA ELIMINAR
    public function eliminar($id) {
        return EscortDAL::eliminar($id);
    }

    /**
     * Por cada escort obtiene los recursos asociados
     * para posteriormente agregarlo a la propiedad Recurso de la Entidad Escort
     * @return Array
     */
    public function listarDestacadas() {
        $arrEscort = EscortDAL::listarDestacadas();
        $arrRecurso = array();
        $idEscort = 0;
        foreach ($arrEscort as $value) {
            $idEscort = $value->getId();
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, "DESTACADA");
            $value->setRecurso($arrRecurso);
        }
        return $arrEscort;
    }

    public function listarTop5() {
        $arrEscort = EscortDAL::listarTop5();
        $arrRecurso = array();
        $idEscort = 0;
        foreach ($arrEscort as $value) {
            $idEscort = $value->getId();
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, "TOP5");
            $value->setRecurso($arrRecurso);
        }
        return $arrEscort;
    }

    public function listarUltimasDiosas() {
        $arrEscort = EscortDAL::listarUltimasDiosas();
        $arrRecurso = array();
        $idEscort = 0;
        foreach ($arrEscort as $value) {
            $idEscort = $value->getId();
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, "ULTIMAS_DIOSAS");
            $value->setRecurso($arrRecurso);
        }
        return $arrEscort;
    }

    public function listarRelacionadas($idEscort) {
        $arrEscort = EscortDAL::listarRelacionadas($idEscort);
        $arrRecurso = array();
        $idEscort = 0;
        foreach ($arrEscort as $value) {
            $idEscort = $value->getId();
            $oRecurso_escortBLL = new Recurso_escortBLL();
            $arrRecurso = $oRecurso_escortBLL->listarPorIdEscort($idEscort, Tipo_recurso::IMAGEN, "PERFIL");
            $value->setRecurso($arrRecurso);
        }
        return $arrEscort;
    }

    //METODO PARA OBTENER POR IDUSUARIO
    public function obtenerPorIdUsuario($id) {
        return EscortDAL::obtenerPorIdUsuario($id);
    }

    //valida valores vacios
    private function setearValoresVacios($oEscort) {
        $strNacionalidad = $oEscort->getNacionalidad();
        $intPeso = $oEscort->getPeso();
        $intAltura = $oEscort->getAltura();
        $strOjos = $oEscort->getOjos();
        $strPiel = $oEscort->getPiel();
        $strPelo = $oEscort->getPelo();
        $intIdComuna = $oEscort->getIdComuna();

        //valida valores "vacio"
        if ($strNacionalidad == Combo::VALOR_SELECCIONE || $strNacionalidad == "-1") {
            $oEscort->setNacionalidad("");
        }
        if ($intPeso == Combo::VALOR_SELECCIONE || $intPeso == "-1") {
            $oEscort->setPeso("null");
        }
        if ($intAltura == Combo::VALOR_SELECCIONE || $intAltura == "-1") {
            $oEscort->setAltura("null");
        }
        if ($strOjos == Combo::VALOR_SELECCIONE || $strOjos == "-1") {
            $oEscort->setOjos("");
        }
        if ($strPiel == Combo::VALOR_SELECCIONE || $strPiel == "-1") {
            $oEscort->setPiel("");
        }
        if ($strPelo == Combo::VALOR_SELECCIONE || $strPelo == "-1") {
            $oEscort->setPelo("");
        }
        if ($intIdComuna == Combo::VALOR_SELECCIONE || $intIdComuna == "-1") {
            $oEscort->setIdComuna("null");
        }

        return $oEscort;
    }
    
    public function votar($id){
        EscortDAL::votar($id);
    }

    public function eliminarServicios($id) {
        return EscortDAL::eliminarServicios($id);
    }

    public function grabarServicios($id, $listadoIdServicios) {
        return EscortDAL::grabarServicios($id, $listadoIdServicios);
    }


}

?>